TODO

## Important

repl gui (text browser + line edit, tab completion)
    - QTextBrowser < QTextEdit::append
    - display details of large objects in another window
    - consider full debugger (multiple tabs, console + timeline + source + gui)
    - debugger (in machine), debugger server, debugger client
    - reflect::Type, (param T -> Unknown)
    - reflect::Value (implicit cast from T to reflect::Value[T])
    - debug::Log('state', state)

ui api
    - ui::modal-get-text
    - api functions for file dialogs, font dialog, ...
    - `interact-with-window` add option `min-size`; `popup` add option `rel-pos`
    - context menu (QMenu.exec)

adjust
    - qtbinding C side int vs. go side int (not the same type, fix it)
    - var wait = make(chan struct{})  // encapsulate to something in util (SyncPair)

## IDE

browser-like navigation
    - back, forward, recent history

structural editing
    - based on readonly QTextEdit

## Refinement

revise resource management for files
    - consider Disposable[T] (ctx-based disposal or persist closable object)


